function a_coef = RK3(dt,f, M, a_coef, tri, b_edge_value, grad_b_value, b_value,coef)
a1 = one_step_euler_2d(f, M, a_coef, tri, b_edge_value, grad_b_value, b_value,coef);
a1_coef = a_coef + dt*a1;
a2 = one_step_euler_2d(f, M, a1_coef, tri, b_edge_value, grad_b_value, b_value,coef);
a2_coef = 0.75*a_coef + 0.25*(a1_coef + dt*a2);
a3 = one_step_euler_2d(f, M, a2_coef, tri, b_edge_value, grad_b_value, b_value,coef);
a_coef = (1/3)*a_coef + (2/3)*(a2_coef + dt*a3);
end